using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;


namespace BicycleTrafficSimulator.CarBehaviour
{

    // WaypointList is a drawable List of screen locations
    public class WaypointList
    {

        private Queue<Vector3> waypoints;

        public Queue<Vector3> Waypoints
        {
            get { return waypoints; }
            set { waypoints = value; }
        }

        public WaypointList(String level)
        {
            this.waypoints = new Queue<Vector3>();
            if (level == "hard")
                this.fillListHard();
            else
                this.fillListEasy();
        }

        private void fillListHard()
        {
            waypoints.Enqueue(new Vector3(2.8f, -0.05f, -2.5f));
            waypoints.Enqueue(new Vector3(10.5f,-0.05f, -2.5f));
            waypoints.Enqueue(new Vector3(10.5f, -0.05f, -12.5f));
            waypoints.Enqueue(new Vector3(21.8f, -0.05f, -12.5f));
            waypoints.Enqueue(new Vector3(21.8f, -0.05f, -4.8f));
            waypoints.Enqueue(new Vector3(29.3f, -0.05f, -4.8f));
            waypoints.Enqueue(new Vector3(29.3f, -0.05f, -11.4f));
            waypoints.Enqueue(new Vector3(22.2f, -0.05f, -11.4f));
            waypoints.Enqueue(new Vector3(22.2f, -0.05f, -23.4f));
            waypoints.Enqueue(new Vector3(16.2f, -0.05f, -23.4f));
            waypoints.Enqueue(new Vector3(16.2f, -0.05f, -29.4f));
            waypoints.Enqueue(new Vector3(2.8f, -0.05f, -29.4f));
            waypoints.Enqueue(new Vector3(2.8f, -0.05f, -12.5f));
            waypoints.Enqueue(new Vector3(10.5f, -0.05f, -12.5f));
            waypoints.Enqueue(new Vector3(10.5f, -0.05f, -20.2f));
            waypoints.Enqueue(new Vector3(2.8f, -0.05f, -20.2f));
            
        }

        private void fillListEasy()
        {       
            waypoints.Enqueue(new Vector3(2.8f, -0.05f, -2.5f));
            waypoints.Enqueue(new Vector3(29.3f, -0.05f, -2.5f));
            waypoints.Enqueue(new Vector3(29.3f, -0.05f, -29.4f));
            waypoints.Enqueue(new Vector3(2.8f, -0.05f, -29.4f));

        }
    }
}
